package com.universal.universal.ceshi;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Gravity;
import android.view.View;

import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.universal.universal.R;
import com.universal.universal.adpter.adapter3.GridImageAdapter;
import com.universal.universal.manger.FullyGridLayoutManager;
import com.universal.universal.weight.SelectPicPopupWindow;

import java.util.ArrayList;
import java.util.List;

import butterknife.ButterKnife;

/*图片编辑测试页面 9张图片上传回掉与照相*/
public class PhotoEditingActivity extends AppCompatActivity {

    RecyclerView recycler;
    //照片集合
    private List<LocalMedia> selectList = new ArrayList<>();

    private SelectPicPopupWindow menuWindow;
    private GridImageAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_photo_editing);

        ButterKnife.bind(this);
        init();
        onclick();
    }

    private void onclick() {


    }

    //初始化
    private void init() {
        recycler = (RecyclerView) findViewById(R.id.recycler_phone);
        FullyGridLayoutManager manager = new FullyGridLayoutManager(PhotoEditingActivity.this, 4, GridLayoutManager.VERTICAL, false);
        recycler.setLayoutManager(manager);
        adapter = new GridImageAdapter(PhotoEditingActivity.this, onAddPicClickListener);
        adapter.setList(selectList);
        adapter.setSelectMax(9);
        recycler.setAdapter(adapter);
        adapter.setOnItemClickListener(new GridImageAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(int position, View v) {
                if (selectList.size() > 0) {
                    LocalMedia media = selectList.get(position);
                    String pictureType = media.getPictureType();
                    int mediaType = PictureMimeType.pictureToVideo(pictureType);
                    switch (mediaType) {
                        case 1:
                            // 预览图片 可自定长按保存路径
                            //PictureSelector.create(MainActivity.this).externalPicturePreview(position, "/custom_file", selectList);
                            PictureSelector.create(PhotoEditingActivity.this).externalPicturePreview(position, selectList);
                            break;
                        case 2:
                            // 预览视频
                            PictureSelector.create(PhotoEditingActivity.this).externalPictureVideo(media.getPath());
                            break;
                        case 3:
                            // 预览音频
                            PictureSelector.create(PhotoEditingActivity.this).externalPictureAudio(media.getPath());
                            break;
                    }
                }
            }
        });
    }


    //监听炒作
    private GridImageAdapter.onAddPicClickListener onAddPicClickListener = new GridImageAdapter.onAddPicClickListener() {
        @Override
        public void onAddPicClick() {
            menuWindow = new SelectPicPopupWindow(PhotoEditingActivity.this, new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    switch (v.getId()) {

                        case R.id.btn_pick_photo:
                            // 进入相册 以下是例子：不需要的api可以不写
                            PictureSelector.create(PhotoEditingActivity.this)
                                    .openGallery(PictureMimeType.ofImage())// 全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
                                    // .theme(themeId)// 主题样式设置 具体参考 values/styles   用法：R.style.picture.white.style
                                    .maxSelectNum(9)// 最大图片选择数量
                                    .minSelectNum(0)// 最小选择数量
                                    .imageSpanCount(3)// 每行显示个数
                                    //.selectionMode(cb_choose_mode.isChecked() ?
                                    // PictureConfig.MULTIPLE : PictureConfig.SINGLE)// 多选 or 单选
                                    .previewImage(true)// 是否可预览图片
                                    .previewVideo(false)// 是否可预览视频
                                    //  .enablePreviewAudio(cb_preview_audio.isChecked()) // 是否可播放音频
                                    //  .compressGrade(Luban.THIRD_GEAR)// luban压缩档次，默认3档 Luban.FIRST_GEAR、Luban.CUSTOM_GEAR
                                    //  .isCamera(cb_isCamera.isChecked())// 是否显示拍照按钮
                                    .isZoomAnim(true)// 图片列表点击 缩放效果 默认true
                                    //.setOutputCameraPath("/CustomPath")// 自定义拍照保存路径
                                    .enableCrop(false)// 是否裁剪
                                    //  .compress(cb_compress.isChecked())// 是否压缩
                                    // .compressMode(compressMode)//系统自带 or 鲁班压缩 PictureConfig.SYSTEM_COMPRESS_MODE or LUBAN_COMPRESS_MODE
                                    //.sizeMultiplier(0.5f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效
                                    // .glideOverride(160, 160)// glide 加载宽高，越小图片列表越流畅，但会影响列表图片浏览的清晰度
                                    //   .withAspectRatio(aspect_ratio_x, aspect_ratio_y)// 裁剪比例 如16:9 3:2 3:4 1:1 可自定义
                                    //   .hideBottomControls(cb_hide.isChecked() ? false : true)// 是否显示uCrop工具栏，默认不显示
                                    //   .isGif(cb_isGif.isChecked())// 是否显示gif图片
                                    //   .freeStyleCropEnabled(cb_styleCrop.isChecked())// 裁剪框是否可拖拽
                                    //   .circleDimmedLayer(cb_crop_circular.isChecked())// 是否圆形裁剪
                                    //  .showCropFrame(cb_showCropFrame.isChecked())// 是否显示裁剪矩形边框 圆形裁剪时建议设为false
                                    //   .showCropGrid(cb_showCropGrid.isChecked())// 是否显示裁剪矩形网格 圆形裁剪时建议设为false
                                    //  .openClickSound(cb_voice.isChecked())// 是否开启点击声音
                                    .selectionMedia(selectList)// 是否传入已选图片
                                    //.previewEggs(false)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中)
                                    //.cropCompressQuality(90)// 裁剪压缩质量 默认100
                                    //.compressMaxKB()//压缩最大值kb compressGrade()为Luban.CUSTOM_GEAR有效
                                    //.compressWH() // 压缩宽高比 compressGrade()为Luban.CUSTOM_GEAR有效
                                    //.cropWH()// 裁剪宽高比，设置如果大于图片本身宽高则无效
                                    //.rotateEnabled() // 裁剪是否可旋转图片
                                    //.scaleEnabled()// 裁剪是否可放大缩小图片
                                    //.videoQuality()// 视频录制质量 0 or 1
                                    //.videoSecond()//显示多少秒以内的视频or音频也可适用
                                    //.recordVideoSecond()//录制视频秒数 默认60s
                                    .forResult(PictureConfig.CHOOSE_REQUEST);//结果回调onActivityResult code
                            menuWindow.dismiss();
                            break;
                        case R.id.btn_take_photo:
                            // 单独拍照
                            PictureSelector.create(PhotoEditingActivity.this)
                                    .openCamera(PictureMimeType.ofImage())
                                    .forResult(PictureConfig.CHOOSE_REQUEST);

                            menuWindow.dismiss();
                            break;
                    }
                }
            });
            //显示窗口
            menuWindow.showAtLocation(PhotoEditingActivity.this.findViewById(R.id.recycler_phone), Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); //设置layout在PopupWindow中显示的位置

        }

    };

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case PictureConfig.CHOOSE_REQUEST:
                    // 图片选择结果回调
                    selectList = PictureSelector.obtainMultipleResult(data);
                    // 例如 LocalMedia 里面返回三种path
                    // 1.media.getPath(); 为原图path
                    // 2.media.getCutPath();为裁剪后path，需判断media.isCut();是否为true
                    // 3.media.getCompressPath();为压缩后path，需判断media.isCompressed();是否为true
                    // 如果裁剪并压缩了，已取压缩路径为准，因为是先裁剪后压缩的
                    adapter.setList(selectList);
                    adapter.notifyDataSetChanged();
                    break;
            }
        }
    }

}
